package compilador.procesos;

import compilador.lexico.LectorCodigo;
import compilador.lexico.TablaSimbolos;
import compilador.lexico.Token;

/*
 * Proceso inicializador de tokens
 */
/**
 * @author  Matias
 */
public class Proceso1 implements Proceso{

	/**
	 * @uml.property  name="l"
	 * @uml.associationEnd  
	 */
	LectorCodigo L;
	/**
	 * @uml.property  name="tS"
	 * @uml.associationEnd  
	 */
	TablaSimbolos TS;
	StringBuffer actual;
	/**
	 * @uml.property  name="t"
	 * @uml.associationEnd  
	 */
	Token t;
	
	public Proceso1(LectorCodigo L, TablaSimbolos TS,StringBuffer actual, Token t){
		this.L = L;
		this.TS = TS;
		this.actual = actual;
		this.t = t;
	}
	
	public Token ejecutar(char c,int nroLinea){
		actual.replace(0, actual.length(),"");
		actual.append(c);
		
		if (((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z')))
			this.t.setID("Identificador");
		if ((c>='0')&&(c<='9'))
			this.t.setID("Constante");
		if (('=' == c) || ('>' == c) || ('<' == c))
			this.t.setID("Op. Relacional");
		if ('/'== c)
			this.t.setID("Op. Aritmetico");
		if ('\'' == c){
			this.t.setID("Cadena");
			//actual.replace(0, actual.length(),"");
		}
		return t;
	}
		
}
